7. Conociendo a fondo tu sistema.
7.1. Usuarios y Grupos. Tipos de usuarios. Sudo.
7.2. Asignar permisos a ficheros y carpetas.
7.3. Entendiendo el sistema de ficheros de GNU/Linux.
Linux fue diseñado desde el principio como un sistema multiusuario (como contraposición a MS-DOS), es decir está concebido para ser utilizado por varios usuarios a la vez o simultáneamente. En Linux deberás habituarte a iniciar la sesión como un usuario “normal” o típico, no como administrador o root del sistema.
¿Por qué? Pues básicamente por razones de seguridad. Ya sea porque en el transcurso diario de una sesión en Linux puedas meter la pata y dejar inestable el sistema, o bien porque al navegar por Internet o ejecutar una aplicación en modo root, ésta, otra aplicación o un usuario no autorizado desde el exterior aproveche la ocasión para colarse en tu sistema con todos los privilegios y realizar acciones perniciosas o dañinas contra el sistema.
Y es que, si lo piensas, “he aquí la madre del cordero”, para navegar por Internet o ejecutar la mayoría de las aplicaciones del día a día no necesitas en absoluto ser un usuario administrador |
Por lo tanto, en Linux existen muchos tipos de usuarios, sin embargo nos interesan básicamente dos: el usuario normal o común y el administrador. La idea es que para realizar tareas administrativas como, por ejemplo, instalar o desinstalar software precisas privilegios de administración. Existen dos modos de abordar el problema.
El primer modo sería cambiar de nuestro usuario común (el que llamamos joe) al usuario root (o administrador). La forma más sencilla es mediante la orden “su”, que son las siglas de swich user, es decir, cambiar de usuario. Cuando quieras cambiar a root, bastará con escribir en la consola (se accede desde K, Sistema, Konsole): su root.
Sin embargo en Ubuntu la cuenta de root está desactivada, para activarla escribe en la consola la siguiente orden: sudo passwd. Ahora te pide que introduzcas tres contraseñas:
La primera es la del usuario con el que entras al sistema normalmente (joe).
La segunda palabra de paso será la de root. La que tendrás que introducir cuando quieras cambiar a root con la orden su root.
Finalmente la última será la confirmación de la segunda contraseña.
Ahora cambia de usuario con su root y puedes saber bien en el prompt o con la órden whoami (Who am I? o ¿Quién soy yo?) que usuario eres en todo momento. Pero, ¿qué es el prompt? Sencillo, abre la consola desde K, Sistema, Konsole. |
|
La segunda opción, quizás la mejor en términos de seguridad, es dar a nuestro usuario determinados privilegios administrativos durante un tiempo limitado, para que pueda realizar las tareas que precise para mantener el sistema. |
Este es el modo de trabajar por defecto de la distribución Ubuntu y se implementa pidiendo la contraseña para los programas “administrativos” y anteponiendo sudo a cualquier orden que requiera tales permisos. Veamos un ejemplo, si queremos instalar nuevo software, utilizamos el Adept. Para abrirlo navegamos por K, Sistema, Administrador Adept. Nos va a pedir la contraseña porque la instalación de programas es una tarea administrativa que compromete la seguridad del sistema. Es una forma de decirnos: ¡Cuidado!, a partir de ahora puedes comprometer la seguridad y estabilidad del equipo.
Análogamente si quisiéramos hacer lo mismo desde la consola con apt-get install paqueteAInstalar (instala “paqueteAInstalar”), precisarías anteponer sudo y teclear por tanto: sudo apt.-get install paquete.
Los usuarios además se organizan en grupos para facilitar la gestión, así pues cada usuario tiene asignado un grupo y puede pertenecer a varios. Podemos otorgar determinados permisos por grupos de usuarios en vez de a usuarios individuales.
Resumiendo, en nuestro sistema existen dos cuentas: la del usuario normal o habitual y la del administrador. Sin embargo en Ubuntu, la cuenta de administrador está desactivada.
Podemos activarla por consola (sudo passwd) o de forma gráfica, por ejemplo en Gnome desde Sistema, Administración, Usuarios y grupos. Primero debes desbloquear dicha herramienta haciendo clic en Desbloquear. Selecciona el usuario root (administrador) y haz clic en Propiedades. Ahora, escribimos la contraseña en la sección donde dice Establecer la contraseña a mano. |
|
Si vas a estar durante cierto tiempo realizando operaciones de administración, lo más cómodo es cambiar de usuario con la orden “su nuevoUsuario” (switch user, “cambiar de usuario”). Por defecto, si no indicamos ningún usuario (escribiendo sólo “su”) cambiará a root (administrador).
Observa, en este momento tienes control absoluto del sistema y debes andarte con mucho más cuidado que cuando utilizas el usuario por defecto. Ahora si cometes un error puede ser irrecuperable. |
Si quieres crear usuarios, puedes utilizar la herramienta gráfica anterior, haciendo clic en esta ocasión en Añadir usuario o en la consola escribiendo: sudo adduser nombreNuevoUsuario. En ambos casos tendrás que indicar además el nombre completo y algunos datos más.
Análogamente, para borrar usuarios tenemos la orden deluser: sudo deluser nombreNuevoUsuario o desde la interfaz gráfica seleccionando el usuario y haciendo clic en el botón Borrar.
Cambiando de usuario una y otra vez, puede sucederte que en un momento dado no sepas ni quién eres, para orientarte puedes mirar el prompt o ejecutar la orden whoami (Who am I? en inglés significa ¿quién soy yo?).
En la siguiente ilustración, te mostramos un ejemplo. Primero hemos ejecutado la orden whoami y el resultado es joe, es decir, informa que en el sistema ahora mismo somos joe. Seguidamente hemos ejecutado whoami --help, para mostrar la ayuda del comando.
Otras órdenes útiles son: chmod (permite controlar el nivel de acceso de los usuarios a un determinado fichero o directorio) y chown. Si queremos asignar la propiedad de un fichero o directorio a un usuario, utilizamos esta orden. Observa que todo fichero o directorio pertenece a alguien. La sintaxis sería chown miUsuario tuExArchivo y cambiaríamos la propiedad de tuExArchivo a miUsuario. Análogamente para directorios sería chown –R miUsuario tuExDirectorio. Los llamamos tuExArchivo y tuExDirectorio porque eran de un usuario X y ahora pertenecen a miUsuario.
Análogamente, podemos crear grupos con groupadd, eliminarlos con groupdel, o cambiar la propiedad de un fichero o directorio a un nuevo grupo con chgrp. Estas órdenes tienen sus equivalentes en modo gráfico haciendo clic en el botón Gestionar grupos.
El sistema de permisos de Linux se basa en que cada fichero y directorio tiene un propietario, es decir pertenece a alguien. Realmente existen tres categorías de usuarios o roles relativos a cualquier fichero o directorio: El propietario, el grupo (al que pertenece el propietario) y los otros (el resto de usuarios del sistema).
Además sobre los ficheros y carpetas existen tres tipos de permisos:
Lectura: Podemos leer el archivo o directorio. Se representa por una r (Read).
Escritura: Podemos modificar el archivo (si el permiso es sobre un fichero) o insertar / borrar archivos en el directorio. Se representa por una w (Write).
Ejecución: Podemos ejecutar el archivo (si el permiso es sobre un fichero) o acceder al directorio. Se representa por una x (Execute).
Así pues, existen tres tipos de permisos sobre tres roles o categorías de usuarios, resultando por tanto, en un conjunto de nueve combinaciones: rwx sobre el propietario, rwx sobre el grupo y rwx sobre otros.
Existen dos modos de cambiar o visualizar los permisos. La más sencilla es utilizando Konqueror (KDE) o Nautilus (GNOME), haz clic con el botón derecho del ratón sobre el fichero o directorio y selecciona del menú contextual la opción Propiedades. Luego haz clic en la pestaña Permisos, observa el cuadro de dialogo que te aparece:
Puedes cambiar por ejemplo que el Grupo (los usuarios que pertenecen al mismo grupo del propietario) puedan leer y escribir sobre MiFichero.txt. Haz clic a la derecha de Grupo en Lectura posible y cámbialo por Lectura y escritura posibles.
|
Observa las opciones por defecto que asigna a un fichero. Haz clic en Permisos avanzados y verás el siguiente cuadro de diálogo.
En principio el propietario (también llamado usuario) puede leer y escribir (no puede ejecutar porque por defecto los archivos no son ejecutables), el grupo y el resto de usuarios sólo tienen permiso de lectura pero no pueden modificar el archivo. Esto equivale a r w - (lectura y escritura propietario, el guión significa la ausencia de dicho permiso) r - - (grupo) r - - (otros). El cambio que propusimos antes se podría hacer también en esta ventana haciendo clic en la casilla de verificación intersección de Grupo y Escribir. Observa como en Nautilus la interfaz es bastante parecida, sólo que dentro de las Propiedades encontramos más pestañas: Notas, Abrir con, Emblemas y Básico. |
La segunda opción para modificar los permisos, es entrando en la consola y ejecutando chmod. Escribimos chmod, seguido de:
“sobre QUIÉN vamos a modificar los permisos”: a (all, todos), u (user, propietario), g (group grupo), o (other, otros).
“añadimos o eliminamos” permisos: + (añadimos), - (eliminamos).
“QUÉ permisos modificamos”: r (lectura), w (escritura), x (ejecución).
“el fichero o directorio afectado”: nombre_fichero o nombre_directorio.
Un ejemplo sería chmod a+w MiFichero.txt, es decir, todos van a poder escribir sobre dicho fichero. Si queremos hacer lo mismo que antes hicimos con la interfaz gráfica, sustituimos la a por g (es decir sólo cambiamos los permisos para nuestro grupo, todos los miembros de nuestro grupo van a poder modificar MiFichero.txt). Para ver en modo consola los permisos utiliza la orden ls modificada por l (Long, formato largo): ls –l.
El sistema de ficheros de Linux es básicamente un árbol donde el nodo raíz es el nodo / (no confundir con la barra invertida de Windows \). Observa la diferencia con Windows donde tenemos unidades (“C:” para el disco duro, “A:” para el disco flexible o disquette, “D:” para el CD-ROM o DVD, etc.) dentro de las cuales existe una estructura arbórea.
Linux es más simple y coherente, en él todo está en un único árbol. Si lo piensas un poco verás que es un enfoque mucho más sencillo y elegante. Un árbol significa que todo nodo (excepto el raíz) tiene un y solo un padre, pero puede no tener hijos o tener uno, dos, etc. |
Ahora bien, ¿dónde se encuentran los discos duros, Cds, pendrives, etc.? En principio todos estos dispositivos se “montan” en el directorio /media.
Nuestro ordenador puede contener varios discos duros. Supongamos que tenemos discos duros IDE. En principio podemos tener cuatro discos duros IDE, Linux los denomina:
hda (Hard Disk o disco duro): al disco maestro del primer IDE, el 0.
hdb: disco esclavo del IDE0.
hdc: disco maestro del segundo IDE, el 1.
hdd: disco esclavo del IDE1.
Para complicar un poco la cosa, un disco está siempre particionado en particiones primarias (con un máximo de cuatro) y extendidas. Una partición extendida contiene un número variable de unidades lógicas. Las particiones primarias se identifican con un número del 1 al 4 y las lógicas a partir del 5.
Supongamos que queremos tener un disco duro con cuatro particiones. Tendríamos en la primera partición primaria, Windows (se definirá dicha partición como hda1) y una extendida con tres unidades lógicas. Este enfoque es un modelo clásico y sencillo. Es decir, hemos creado una partición primaria y con el resto del disco duro, una partición extendida. Esta a su vez la hemos dividido en tres unidades lógicas.
La primera partición lógica (la que nos gusta llamar DATOS), es una partición donde se guardan todos los archivos que estamos utilizando y será accedida para lectura y escritura tanto por Windows como por Linux. Como es la primera partición lógica será la hda5. La hda6 típicamente contendrá la partición nativa de Linux y la hda7 la partición de swap o de intercambio.
Todo esto se puede aplicar en función del número de discos duros que tengamos. Si estamos hablando de un segundo disco duro en el primer IDE hablaremos de un disco hdb y la primera partición primaría sería la hdb1. Si tenemos discos duros SCSI o más recientemente los famosos SATA (Serial ATA) Linux los llamará sda, sdb,... en función del numero de discos que tengamos y las particiones seguirán la misma convención ya explicada.
|
Cada una de las particiones será accesible a través de un punto de montaje. El punto de montaje es el directorio donde ubicamos dicha partición en nuestro sistema de ficheros. Una herramienta muy útil para conocer tu particionado es GParted, se instala con el paquete gparted, se encuentra en Sistema, Administración, Editor de Particiones. |
En el ejemplo inicial los discos estarán montados normalmente la siguiente estructura:
/media/hda1, corresponde a la unidad C de Windows.
/media/hda5, la partición de datos.
/, la partición raíz de Linux, de donde parte todo el sistema de archivos.
La partición hda7, swap, que no es accesible.
Y en el caso de discos SATA, como observarás no existen cambios significativos:
/media/sda1, para “C:”, Windows.
/media/sda5, partición de datos.
/, raíz.
/media/sdb1, para la primera partición para el segundo disco SATA, etc.
Los CDROM y DVD son accesibles desde /media/cdrom y las unidades pendrives desde /media/usbdisk o /media/disk. En principio, Linux lo montará automáticamente y sólo tendrás que preocuparte de saber donde está todo. Si tienes un pendrive y quieres llevártelo, tendrás que desmontarlo. ¡Ojo!, si no haces esto te arriesgar a perder los datos de tu Pendrive. Esto también se llama extracción segura.
Para lo cual te vas al icono en tu escritorio donde veas el pendrive, haces clic con el botón derecho (menú contextual) sobre el Pendrive y selecciona Extracción segura. Un menú contextual es un menú que indica las acciones que son oportunas o pertinentes en un contexto dado. Así tiene sentido realizar una extracción segura sobre un pendrive pero no obviamente sobre una carpeta o fichero. |
|
En la estructura de directorios hay un directorio especialmente relevante, el directorio home. Este es el directorio donde joe (el usuario con el que estamos trabajando) tendrá almacenado todas sus carpetas y ficheros. Si estás navegando por la consola y escribes cd sin más, irás a tu directorio home, que por defecto se encontrará en /home/joe. Todos los usuarios tienen un directorio home que parte de la misma raíz /home, excepto el Administrador. Este usuario tiene su directorio home colgando del directorio raíz y se llama /root.
Existen muchos directorios que son de primer nivel, es decir, tiene al raíz como padre. Por citar los más importantes son:
etc donde encontrarás los ficheros de configuración de los distintos programas y servidores.
bin y sbin están las órdenes o comandos como ls, cp, mv, etc.
boot los ficheros encargados de arrancar el sistema.
tmp el directorio para realizar operaciones temporales.
usr donde se encuentran la mayoría de los programas, la documentación, etc.
Para saber como podemos matar a procesos “problemáticos”, precisamos entender el concepto de proceso.
Un proceso, es básicamente un programa en ejecución. Cuando ejecutamos una aplicación para realizar una tarea o lanzamos una orden desde consola, tenemos asociado uno o más procesos que son los encargados de realizar la tarea encomendada. |
Podemos además ejecutar órdenes en segundo plano, por ejemplo: firefox &, lanza firefox y te devuelve el control, observa el “&” al final. Recuerda que Linux es multitarea, lo que significa que puede atender varias órdenes o procesos simultáneamente.
Respondamos entonces a la pregunta inicial. ¿Qué hago cuando una aplicación deja de responder? ¿Podemos realmente matar los procesos? Empezaremos respondiendo a la segunda pregunta, la respuesta es un rotundo Si.
En Linux los procesos y programas que dejan de funcionar podemos matarlos a diferencia de Windows XP, donde realmente sucede lo contrario. Para conseguir cerrar una aplicación que deja de responder, debemos enviarle una señal al proceso asociado que le ordene que se “suicide”.
Veamos los pasos a seguir. Lo primero es identificar al proceso o procesos que nos está/n planteando el problema. Así supongamos que es el juego gnometrix el que “peta” o deja de responder.
Abrimos una consola (si la interfaz gráfica deja de responder, abre una consola virtual con las teclas Ctrl, Alt y F1) y ejecutamos “ps -A | grep gnometrix”. Con la orden ps obtenemos un listado de todos los procesos en ejecución. Lo que más nos interesa de la información que nos devuelve es el PID (identificador único del proceso) y el CMD (el nombre del proceso).
Con la segunda parte de la instrucción grep gnometrix que recibe como entrada todas las líneas devueltas por ps -A, seleccionamos aquellas líneas que contienen la palabra gnometrix, es decir los procesos asociados con el programa que queremos cerrar. Por ejemplo la salida de dicha orden en consola es la siguiente:
8338 ? 00:00:00 gnometrix
8339 ? 00:00:00 gnometrix
Donde 8338 y 8339 son los PIDs o identificadores de los procesos conflictivos que han dejado de responder, asociados con el programa gnometrix.
En segundo lugar mandamos una señal a dichos procesos. Existen muchos tipos de señales, pero la que más nos interesa es la 9, la que les ordena que se mueran. La orden kill envía señales a los procesos. Luego lo que tenemos que escribir en consola es kill -9 8838 y kill -9 8839.
Existe una forma mucho más sencilla de realizar todo esto mediante la orden xkill. Teclea xkill en la consola y verás una calavera, bastará con desplazarse hacia la ventana que no responde y hacer clic sobre ella para que desaparezca.
Como última acción, si a pesar de matar los recursos conflictivos la interfaz gráfica no responde, desde la consola virtual escribe sudo reboot que es la orden para reiniciar el sistema. No apagues con el botón POWER, si haces esto a menudo dejarás el sistema inútil con sólo unos cuantos días de uso.
Normalmente cuando utilizamos Linux lo hacemos de modo interactivo, es decir, lanzamos órdenes y Linux nos responde. Sin embargo, existen ocasiones donde conviene agrupar un conjunto de órdenes en un fichero para luego ejecutarlas conjuntamente, esto es un shell script o un script para abreviar. Para una información en profundidad consulta el excelente manual que encontrarás en la siguiente dirección: http://freeos.com/guides/lsst/index.html
Para crear tus propios scripts debes seguir los siguientes pasos:
#!/bin/bash clear echo "Hola, $USER" cal echo "Si, hoy es ... ";date fortune exit 0
|
|
Existen un conjunto de variables que son accesibles desde cualquier programa shell:
$0: El nombre del propio script (./miScript2)
$1: El primer argumento pasado al script (me), $2 sería el segundo (gusta), etc.
$*: Todos los argumentos (me gusta mucho Ubuntu).
$#: Número de argumentos (4).
$$: El PID del proceso que está ejecutando la shell (9001).
$?: Valor del estado en la salida (0, sin errores).
Ten en cuenta que nos referimos a las variables como $myVariable, sin embargo si queremos asignarle un valor quitamos el signo “$”, sería como por ejemplo: myVariable=5.
Veamos la forma más rápida que conocemos de realizar una consulta a la RAE (Real Academia Española). Vamos a crear un script rae, guárdalo en /usr/local/bin, donde se encuentran los archivos ejecutables y dadle permiso de ejecución. En otras palabras:
1º) Abre la consola.
2º) Teclea vi rae y escribe
#!/bin/bash
clear
lynx -dump http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=$1
3º) sudo cp rae /usr/local/bin.
4º) sudo chmod a+x /usr/local/bin/rae.
Observa que $1 es el parámetro que se le va a pasar. Para utilizarlo escribe en la consola rae “palabra_a_buscar”, es decir $1 sería palabra_a_buscar. Para buscar en la wikipedia basta escribir en otro fichero: lynx -dump http://es.wikipedia.org/wiki/$1 | less (la única diferencia es que la salida la vamos a ir mostrando paginada), por supuesto debes ponerlo en el mismo lugar y darle permiso de ejecución.
Las estructuras de control utilizadas en los scripts son las siguientes:
Alternativa if. Si se cumple la condición se ejecuta sentencia. También se pueden anidar. |
if [ condición ] if [condicion] then then sentencia sentenciaSisecumpleCondición fi else sentenciaSiNOsecumpleCondición fi |
Este sería un ejemplo de utilización de if. |
#!/bin/sh if [ $USER != "root" ] then echo "Bacalao, tú no eres root" else echo “Bienvenido root” fi |
Alternativa múltiple, case. Si la variable es igual a Valor1, ejecuta la Sentencia1, si es igual a Valor2, Sentencia2. En caso de que el valor de variable no coincida con ninguno de los valores listados ejecuta SentenciaN. |
case $ variable Valor1) Sentencia1 ;; Valor2) Sentencia2 ;; [...] *) SentenciaN ;; esac |
Bucles: while. Se ejecuta sentencia mientras se cumpla condición. |
while [condicion] do Sentencia done |
Bucles: until. Se ejecuta sentencia hasta que se cumpla condición. |
until [condición] do Sentencia done |
Bucles: for. Se ejecuta el bucle tantas veces como elementos tiene la lista, nombreVariable va tomando los distintos valores de la lista.
La última expresión es idéntica a la utilizada en C. Ejecuta sentencia mientras se cumpla Condición. |
for nombreVariable in {valor1, valor2, ..., valorN} do Sentencia done for ((expresionInicial;Condición;expresiónIncremento= do Sentencia done En expresiónInicial se inicializa el bucle, normalmente se asigna un valor a una variable, en la tercera expresión del bucle se actualiza dicha variable para no entrar en un bucle sin fin. |
|
Aquí te presentamos un programa clásico que solicita órdenes por consola y ejecuta las distintas acciones hasta que el usuario teclea el número 4. Puedes sustituir el until por un while [ $FIN=no], se ejecutaría mientras $FIN fuera no. |
#!/bin/bash
FIN=no
until [ $FIN = si ]
do
echo Ejecuta tu orden, 1 es la ayuda
read orden
case $orden in
1)
echo '1 ayuda 2 calendario 3 cita 4 salir'
;;
2) cal;
;;
3) fortune;
;;
4) FIN=si
;;
esac
done
exit 0
Para demostrarte la potencia de los scripts, observa este cuadro de diálogo creado en uno: #!/bin/bash dialog --title "Pantalla de bienvenida" --clear \ --yesno "Hola, $USER" 10 30 Tienes que instalar el paquete dialog. |
|
Aunque a primera vista pueda parecer que todos coincidimos en lo que entendemos por optimizar el sistema, te mostraremos en seguida que realmente no es así.
En principio, todos esperamos de nuestro sistema que sea rápido y eficiente. Sin embargo, el compromiso entre lo que estemos dispuestos a sacrificar, por ejemplo, en términos de experiencias de escritorio, interfaces 3D, amigabilidad del software, etc. y lo que realmente esperamos de nuestro sistema en cuanto a rendimiento, puede diferir tanto que seguramente sería complicado ponernos de acuerdo.
Te vamos a dar unas pautas para conseguir que tu sistema Ubuntu vuele; el que elijas una u otra opción dependerá de tus expectativas así como de las posibilidades de tu equipo.
No activar Compiz Fusion, navega a Sistema, Preferencia, Apariencia, asegúrate que en Efectos visuales tienes Ninguno). Aún te decimos más, en vez de utilizar gestores de ventana exigentes como KDE o GNOME, utiliza los gestores más ligeros como IceWM, FluxBox, Xfce, etc. ¡Incluso puedes plantearte cambiar de distribución! Ubuntu es una buena elección para la mayoría de los equipos domésticos actuales, pero también es bastante exigente. Por otra parte si tienes un equipo obsoleto puedes elegir entre otros: Xubuntu (Xfce), Damn Small Linux, Slax, Puppy Linux.
Si quieres trabajar con KDE o GNOME, pero necesitas aceleración entonces lo obvio es no tener una imagen de fondo de escritorio, ni pantalla de splash (si la instalaste con el paquete gnome-splashscreen-manager, estará en Sistema, Preferencia, Splash Screen y desactiva Show Splash Screen on Start), ni efectos visuales o salvapantallas exigentes (tipo XScreensaver). Además, podrías también optar por utilizar aplicaciones más ligeras: la suite KOffice en vez de OpenOffice, Gnumeric (gnumeric, en vez de OpenOffice Calc), Abiword (abiword por OpenOffice Writer), Swiftfox o Epiphany (navegadores ligeros alternativas a Firefox), etc.
También es útil recordar que una configuración con DHCP es más lenta que tener IP estática, la razón es que si tienes DHCP tu ordenador tendrá que preguntar al router cuál es su IP.
Considera además que cada vez que buscas una dirección http://www.unDominioCualquiera.com/ tienes que hacer una petición a un servidor DNS que te resuelva el nombre y te lo traduzca a una dirección IP.
|
Es útil instalar el paquete dnsmasq para que tu sistema recuerde las direcciones IP de los dominios que visitas con más frecuencia. Dnsmasq está diseñado para proveer servicios de DNS y DHCP a una red pequeña, aquí lo utilizamos como una caché de direcciones de Internet. |
Una vez que lo instales precisas realizar estos sencillos pasos:
Abre la consola y escribe sudo vi /etc/dnsmasq.conf sustituye la cadena #listen-address= por listen-address=127.0.0.1 o la interfaz por la que quieres que escuche las peticiones, podrías también querer que fuera eth0 o eth1 para atender la red local. Si quisieras que fuera también un servidor DHCP bastaría con modificar la línea: dhcp-range=192.168.0.50,192.168.0.150,12h. En este ejemplo asignaría las IP de la 50 a la 150, siendo la dirección IP de nuestra red local 192.168.0.0. El último parámetro es el tiempo de la liberación de una IP.
Ahora teclea sudo vi /etc/dhcp3/dhclient.conf, la línea
#prepend domain-name-servers 127.0.0.1; debe estar descomentada, es decir, sin la almohadilla inicial (#).
Teclea sudo vi /etc/resolv.conf y escribe en la primera línea nameserver 127.0.0.1. En otras palabras le indicamos que el primer lugar donde debe buscar poder realizar la traducción (de nombres a direcciones IP) es en la propia máquina local.
Reiniciar el demonio dnsmasq: sudo /etc/init.d/dnsmasq restart. Observa en la figura que con dig observamos el tiempo que tarda en respondernos el servidor, la primera vez 61 milisegundos, la segunda tan sólo 3. Podríamos prescindir de mucha basura en la salida, escribiendo: dig google.es | grep Query. Otra solución similar es OpenDNS, visita http://www.opendns.com/ , para más información.
En otro orden de cosas, conviene instalar Linux formateando la partición raíz, es decir con una partición limpia. Si tienes dos discos duros, instala la partición swap en un disco distinto al que contenga la partición raíz. La razón es que Linux accede más rápido a dos zonas de dos discos duros distintos que a dos zonas distintas del mismo disco duro.
Reduce el número de escritorios virtuales a 2 (o incluso a 1), así como las consolas virtuales. Para lo primero, haz clic en el panel que muestra los escritores virtuales, Preferencias, Número de áreas de trabajo y escribe 2 (o 1). Para las consolas virtuales, escribe sudo gedit /etc/event.d/ttyN (N número de consola, de 2 a 6) y descomenta todas las líneas.
La configuración de XWindows se encuentra en /etc/X11/xorg.conf. En la sección Screen (Monitor), edita un parámetro llamado Defaultdepth que mide la profundidad del color. Ponlo a 16 y obtendrás una mejora significativa de prestaciones a cambio de una calidad aceptable. Puedes quitar también módulos y dispositivos que no necesites, por ejemplo la sección para los dispositivos watcom (son tabletas digitalizadoras que la mayoría de los usuarios no las tienen). Para conocer detalles de tu configuración específica introduce en http://xtiming.sourceforge.net/cgi-bin/xtiming.pl, los detalles de tu monitor: frecuencia horizontal y vertical, resolución, frecuencia refresco, etc.
Cambia, si tienes una memoria mayor de 512 Mb el valor asignado a la memoria de intercambio de 60 a 10, es decir utiliza más la RAM (más rápida) y menos la memoria de intercambio, SWAP (disco, más lento). Escribe sudo vi /etc/sysctl.conf y añade al final del archivo la siguiente línea: vm.swappiness=10 (incluso 5).
Compila el kernel y ajústalo a tu sistema. Esta opción no la vamos a explicar debido a que su complejidad excede las pretensiones de esta obra. Una opción más sencilla es utilizar apt-build, se trata de una herramienta que nos permite instalar las aplicaciones compiladas de forma optimizada para la arquitectura de nuestra máquina. Los pasos a seguir son: 1) En la lista de repositorios habilita las líneas de los fuentes, es decir, debes encontrar algo como: deb-src http://es.archive.ubuntu.com/ubuntu intrepid main restricted universe multiverse. 2) Instálala, sudo apt-get install apt-build; nos preguntará sobre la arquitectura de nuestro procesador y sobre el nivel de optimización. 3) Actualizamos la lista de paquetes, sudo apt-get update; 4) Instalamos una aplicación pero con apt-build (el paquete estará optimizado para nuestra arquitectura): sudo apt-build install aplicación.
Instala el paquete preload, conseguirás reducir el tiempo de arranque de las aplicaciones.
Deshabilita IPv6 y escribe el alias para localhost. Estos son los pasos que debes seguir:
Editamos el fichero /etc/modprobe.d/aliases.
Pon un comentario (#) en la línea de alias net-pf-10 ipv6, debes tener:# alias net-pf-10 off ipv6.
Edita el fichero /etc/hosts.
Descomenta las líneas que se refieren a ip6 e incluye el alias para localhost (en este caso es joe-desktop). Observa el ejemplo:
127.0.0.1 localhost joe-desktop 127.0.1.1 joe-desktop # The following lines are desirable for IPv6 capable hosts #::1 ip6-localhost ip6-loopback #fe00::0 ip6-localnet #ff00::0 ip6-mcastprefix #ff02::1 ip6-allnodes #ff02::2 ip6-allrouters #ff02::3 ip6-allhosts |
Para conseguir un tiempo de arranque (boot) más rápido edita el fichero /etc/init.d/rc y cambia la línea CONCURRENCY=none (sin concurrencia) por CONCURRENCY=shell.
Elimina los servicios que no precises en Sistema, Administración, Servicios. Primero tendrás que Desbloquear la herramienta. Por ejemplo, si utilizas WebMail (Yahoo, Gmail, Hotmail, etc.) no precisarás el Agente de correo (postfix o exim4), análogamente si no utilizas Bluetooth deshabilita el servicio de Gestión de dispositivos Bluetooth, etc. |
|
También podemos optimizar algunas aplicaciones:
Desactivando la vista previa de Nautilus. Ábrelo, navega por Editar, Preferencias, selecciona la pestaña Vista previa. Asegúrate de que Mostrar textos en los iconos, Mostrar miniaturas, etc. tengan sus valores a Nunca.
Deshabilita IPv6 en Firefox (Escribe en la barra de direcciones about:config y modifica el valor de network.dns.disableIPv6 a true, instala el plugin Fasterfox, pero sobre todo quita plugins que no te sean imprescindibles pues ralentizan el navegador.
Respecto a OpenOffice, podemos mejorar bastante el rendimiento seleccionando en el menú Herramientas, Opciones. Cambia en Memoria de trabajo los valores de Usar para OpenOffice.org a 256MB y en Memoria por objeto sube el valor hasta 24. Ten en cuenta las prestaciones del equipo, aquí suponemos que tienes una máquina con al menos 1 GB de memoria (en equipos más limitados prueba con valores más bajos por ejemplo 128 ó 64 para el primer valor y 16 ó 20 para el segundo). Reinicia OpenOffice y notarás la diferencia.